package proceso.inicializar;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

import hibernate.HibernateUtil;

import modelo.red.Malla;
import modelo.regionRiego.RegionRiego;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import proceso.carga.malla.CargadorDeMalla;

import datosIniciales.DescripcionMalla;
import datosIniciales.Archivos;

public class CargaInicialMallas {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Archivos mallas = new Archivos();
		DescripcionMalla descripcionMalla;
		CargadorDeMalla almacenarMalla;
		RegionRiego regionRiego;
		String nombre = "Valle de Quibor";
		String nombreMalla;
		
		boolean resultado;
		
		Session sess = HibernateUtil.currentSession();
		/** Starting the Transaction */
		org.hibernate.Transaction tx = sess.beginTransaction();
		mallas.inicializar();
		Query q= sess.createQuery("from RegionRiego");
		if(q.list().size()==1){
			regionRiego = (RegionRiego)q.list().get(0);
			for(int i=0; i<mallas.getListaArchivo().size()-1;i++) {
				descripcionMalla = mallas.archivoACargar(i);
				System.out.println("archivo" + descripcionMalla.getNombre());
				System.out.println("atributo" + descripcionMalla.getAtributo());
				almacenarMalla = new CargadorDeMalla();
				almacenarMalla.setNombreDelArchivo(descripcionMalla.getArchivo());
				almacenarMalla.setAtributoLeido(descripcionMalla.getAtributo());
				almacenarMalla.setNombreDeLaMalla(descripcionMalla.getNombre());
				resultado = almacenarMalla.cargarMalla(sess, regionRiego, mallas.getTipoMalla()[i]);
				if(resultado){
					System.out.println("se creo la malla " + descripcionMalla.getNombre());
					nombreMalla = descripcionMalla.getNombre();
					if(nombreMalla.compareTo("Mapa Digital de Terreno Valle de Quibor CIDIAT-ULA rev. 2011") == 0) {
						regionRiego.setCotaTerreno(almacenarMalla.getMalla());
					}
					else if(nombreMalla.compareTo("Nivel de Agua Valle de Quibor")==0) {
						regionRiego.setNivelAgua(almacenarMalla.getMalla());
					}
					else if(nombreMalla.compareTo("Profundidad Techo de Roca Valle de Quibor")==0) {
						regionRiego.setProfundidadRoca(almacenarMalla.getMalla());
					}
					else if(nombreMalla.compareTo("Ph Acuifero Quibor")==0) {
						regionRiego.setPh(almacenarMalla.getMalla());
					}
					else if(nombreMalla.compareTo("Conductividad Electrica")==0) {
						regionRiego.setCe(almacenarMalla.getMalla());
					}		
					else if(nombreMalla.compareTo("Serie Terreno")==0) {
						regionRiego.setSerieTerreno(almacenarMalla.getMalla());
					}				
					else if(nombreMalla.compareTo("Serie Terreno")==0) {
						regionRiego.setSerieTerreno(almacenarMalla.getMalla());
					}				
					else if(nombreMalla.compareTo("Sectores de Riego")==0) {
						regionRiego.setSectorRiego(almacenarMalla.getMalla());
					}				
				}
				else {
					System.out.println("Fallo la creacion por " + almacenarMalla.getError());
				}
			}
			sess.update(regionRiego);
		}
		else{
			System.out.println("Crear la region de riego");
		}
		
		tx.commit();
		sess.close();

	}

}
